package com.zhanghe.study.java8.lambda;

import java.util.Comparator;
import java.util.function.Consumer;

/**
 * lambda表达式  需要函数式接口接口->  接口中只有一个抽象方法的接口叫做函数式接口 @FunctionalInterface
 * ->操作符    左侧为参数列表  右侧lambda体
 */
public class TestLambda {

    /**
     * 无参，无返回值
     */
    public static void test1(){
        Runnable r = () -> System.out.println("输出");
    }

    /**
     * 一个参数，无返回值
     */
    public static void test2(){
        Consumer<String> con = x -> System.out.println(x);
        con.accept("测试一下");
    }

    /**
     * 多个参数，有返回值,单行操作
     */
    public static void test3(){
        Comparator<Integer> comparable = (x, y) -> Integer.compare(x,y);
    }

    /**
     * 多个参数，有返回值，多行操作
     */
    public static void test4(){
        Comparator<Integer> comparator = (x,y) ->
        {
            System.out.println(x+"比较"+y);
            return Integer.compare(x,y);
        };
    }

    public static void main(String[] args) {
        test2();
    }
}
